package main

import (
	"log"

	"diff.wang/devtool/themes"
	"diff.wang/devtool/ui"
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/layout"
)

/* func init() {
	//设置中文字体
	os.Setenv("FYNE_FONT", "./fonts/Alibaba-PuHuiTi-Medium.ttf")
} */

func main() {
	// 创建应用
	a := app.NewWithID("wang.diff.demo")
	// 设置主题
	a.Settings().SetTheme(&themes.MyTheme{})
	// 设置icon
	// a.SetIcon()
	// 记录日志
	logLifecycle(a)
	// 为应用创建窗口主体
	w := a.NewWindow("开发工具集")
	// 窗口居中
	w.CenterOnScreen()
	// 设置窗口主题大小
	w.Resize(fyne.NewSize(500, 400))
	// 窗口固定大小
	w.SetFixedSize(true)

	// tab 初始化
	f, l, l2, l3 := ui.IpInfoUi()
	form := ui.IPForm(w, l, l2, l3)
	tabs := container.NewAppTabs(
		container.NewTabItem("IP 地址查询", container.New(layout.NewGridLayoutWithColumns(2), f, form)),
		container.NewTabItem("JSON 格式化", ui.JsonUi(w)),
	)
	tabs.Append(container.NewTabItem("时间转换", ui.TimeUi(w)))
	tabs.Append(container.NewTabItem("json转struct", ui.Json2Struct(w)))

	// 设置 tab 位置
	tabs.SetTabLocation(container.TabLocationBottom)
	// 将tab添加到窗口
	w.SetContent(tabs)

	// 窗口显示并运行
	w.ShowAndRun()
}

func logLifecycle(a fyne.App) {
	a.Lifecycle().SetOnStarted(func() {
		log.Println("生命周期: Started")
	})
	a.Lifecycle().SetOnStopped(func() {
		log.Println("生命周期: Stopped")
	})
	a.Lifecycle().SetOnEnteredForeground(func() {
		log.Println("生命周期: Entered Foreground")
	})
	a.Lifecycle().SetOnExitedForeground(func() {
		log.Println("生命周期: Exited Foreground")
	})
}
